﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;

namespace CityGames
{
    public partial class FormAcceso : Form
    {      
        ErrorProvider epDNI;
        ErrorProvider epPassword;

        public FormAcceso()
        {
            InitializeComponent();            
        }

        private void FormAcceso_Load(object sender, EventArgs e)
        {
            try
            {
                epDNI = new ErrorProvider();
                epDNI.SetIconAlignment(tbDniEmpleado, ErrorIconAlignment.MiddleRight);
                epDNI.SetIconPadding(tbDniEmpleado, 2);
                epDNI.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                epPassword = new ErrorProvider();
                epPassword.SetIconAlignment(tbPasswordEmpleado, ErrorIconAlignment.MiddleRight);
                epPassword.SetIconPadding(tbPasswordEmpleado, 2);
                epPassword.BlinkStyle = ErrorBlinkStyle.BlinkIfDifferentError;

                Empleado enEmpleado = new Empleado();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void btAceptar_Click_1(object sender, EventArgs e)
        {
               
        }

        private void btSalir_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Está seguro(a) que desea salir de la aplicación?", "Salir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                Application.Exit();
        }

        private void FormAcceso_FormClosing(object sender, FormClosingEventArgs e)
        {/*
            if (MessageBox.Show("¿Está seguro(a) que desea salir de la aplicación?", "Salir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.No)
                e.Cancel = true;*/
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                epDNI.SetError(tbDniEmpleado, null);
                epPassword.SetError(tbPasswordEmpleado, null);

                Empleado enEmpleado = new Empleado();
                string expRetbDni = @"^(([A-Z]\d{8})|(\d{8}[A-Z]))$";

                string errores = "";
                bool ok = true;

                String dniEmpleado = tbDniEmpleado.Text;
                String passwordEmpleado = tbPasswordEmpleado.Text;

                if (dniEmpleado != "")
                {
                    if (Regex.Match(dniEmpleado, expRetbDni).Success)
                    {
                        enEmpleado.Dni = dniEmpleado;
                        epDNI.SetError(tbDniEmpleado, null);
                    }
                    else
                    {
                        epDNI.SetError(tbDniEmpleado, "Formato DNI incorrecto.");
                        errores += "- Formato DNI incorrecto.\n";
                        ok = false;
                    }
                }
                else
                {
                    epDNI.SetError(tbDniEmpleado, "Escriba el DNI.");
                    errores += "- Falta el DNI.\n";
                    ok = false;
                }

                if (passwordEmpleado != "")
                {
                    enEmpleado.Password = passwordEmpleado;
                    epPassword.SetError(tbPasswordEmpleado, null);
                }
                else
                {
                    epPassword.SetError(tbPasswordEmpleado, "La contraseña no puede ser vacia");
                    errores += "- La contraseña no puede ser vacia.\n";
                    ok = false;
                }

                if (ok)
                {
                    if (enEmpleado.getPassword() == passwordEmpleado)
                    {
                        FormContenedor formContenedor = new FormContenedor(dniEmpleado);
                        this.Hide();
                        formContenedor.ShowDialog();
                        this.Show();
                    }
                    else
                    {
                        MessageBox.Show("Password Incorrecto", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                    }
                }
                else
                {
                    MessageBox.Show(errores, "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString(), "Se han encontrado errores.", MessageBoxButtons.OK, MessageBoxIcon.Error);
            } 
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Está seguro(a) que desea salir de la aplicación?", "Salir", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == DialogResult.Yes)
                Application.Exit();
        }
    }
}
